People expect payment transactions, such as credit card payments made at a point of sale terminal or through a web interface, to be processed in a matter of seconds. In those few seconds, the payment processor needs to receive the transaction request, perform various checks on the transaction, and send a return message authorizing the transaction. If the duration of any of the steps is increased—even on the order of a few seconds—the payment approval process will seem long and inconvenient to a user that is accustomed to having their transactions processed at near instantaneous speeds. However, the potential for fraudulent and misprocessed transactions forces payment processors to sometimes take more time when handling the approval process. Misprocessed transactions must generally be rectified through the application of costly human capital, and the cost of fraud represents both a direct loss to the processor as well as an indirect cost associated with the erosion of trust between the payment processors and their customers. Payment processors must therefore balance the additional time savings that may be afforded to a user of their payment service against the cost of potentially allowing fraudulent or misprocessed transactions to slip through the system.
A payment processing system 100 for a payment service is display in FIG. 1. System 100 comprises a user 101 conducting a purchase transaction using system 100 via a mobile telephone 102. Payment processing system 100 is enabled through the use of multiple servers. In this sense, payment processing system 100 is exemplary of nearly all modern payment processing systems. Payment systems are generally serviced through the use of geographically disperse datacenters that allow the payment system to be accessed wherever user 101 might be. For example, in payment processing system 100, servers 103 and 104 are located in different datacenters, but either server can be used to process a payment on behalf of user 100. In addition, when a payment processing system is dealing with a high volume of transactions, certain servers in the network can become overloaded. To more evenly distribute the volume of payments processing requests, a load balancer such as load balancer 105 can be employed to evenly divide payment processing services between servers such as servers 104 and 106.
Proper book keeping requires centralized access to every transaction conducted by a given account regardless of what server actually processed the payment request. As a result, the payment processor needs a central location at which all of the accounts can be reconciled. In system 100, accounts are reconciled at central database 107 which receives payment transactions from servers 103, 104, and 106.